<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script type="text/javascript" src="../js/vue.js"></script>
    <script type="text/javascript" src="../js/axios.min.js"></script>
    <script type="text/javascript" src="../js/vue-router.js"></script>
    <script type="text/javascript" src="../js/jquery.min.js"></script>
    <script type="text/javascript" src="../js/bootstrap.min.js"></script>
    <link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="../css/animate.css">
</head>

<body>
    <div id="app" class="container">
        <input type="text" v-model="firstname"> +
        <input type="text" v-model="lastname"> =
        <input type="text" v-model="fullname">
    </div>

    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                firstname: '',
                lastname: '',
            },
            methods: {},
            // 在computed中，可以定义一些属性，这些属性叫做计算属性，计算属性的本质就是一些方法，只不过
            // 我们在使用这些计算属性的时候，是把他们的名称直接当作属性来使用的。并不会把计算属性当作方法去调用。
            computed: {
                // 注意1：计算属性在引用的时候一定不要加小括号去调用，直接把它当作普通属性去使用就好。
                // 注意2：只要计算属性这个function内部所用到的任何data中的数据发生变化，就会立即重新去计算这个计算属性的值。
                // 注意3：计算属性的求值结果会被缓存起来，方便下次直接使用。如果计算属性方法中所
                //       依赖的任何数据都没有发生过变化，则不会重新对计算属性的职。
                fullname: function() {
                    return this.firstname + " " + this.lastname;
                }
            },
        });
    </script>
</body>

</html>